iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 2
2
Software Development

重修JAVA三十天系列 第 2

第二天 JUnit生命週期/執行順序

  • 分享至 

  • xImage
  •  

Annotation介紹

在JUnit 4的版本中,有了幾個Annotation,幫我們設定在測試案例的之前進行配置及之後進行釋放資源的方法,如下:

  1. @BeforeClass
  2. @Before
  3. @After
  4. @AfterClass

雖然按照字面上來看,可以大概猜出來他們的執行順序,但實際上是如何執行的呢?

配置測試類別及方法,並實際執行

我們可以參考以下的範例

import org.junit.*;

public class Day2Test {
    @BeforeClass
    public static void beforeClass() {
        System.out.println("before class");
    }

    @Before
    public void before() {
        System.out.println("before");
    }

    @After
    public void after() {
        System.out.println("after");
    }

    @AfterClass
    public static void afterClass() {
        System.out.println("after class");
    }

    @Test
    public void Case1() {
        System.out.println("test case 1");
    }

    @Test
    public void Case2() {
        System.out.println("test case 2");
    }
}

然後進行test run查看實際執行結果
https://ithelp.ithome.com.tw/upload/images/20171222/20085669IB9jPo2FCx.png

使用方式及情境

看過執行結果之後,針對這幾個Annotation,我們還是有幾個事項須注意,如下:

  1. @BeforeClass 是一個public static void的方法,會在所有測試案例之前僅執行一次,用於共享消耗較多的執行,譬如開啟資料庫連結。
  2. @Before 是一個public void的方法,會在每一個測試案例之前執行,有幾個案例就執行幾次,一般來說會遇到一些測試案例在執行前須建立相同的物件,可以透過此方法來每次執行
  3. @After 是一個public void的方法,會在每一個測試案例之後執行,有幾個案例就執行幾次,當測試案例執行完後,需要重置資源,可以透過此方法執行
  4. @AfterClass 是一個public static void的方法,會在所有測試案例之後僅執行一次,用於釋放共享消耗的資源。

如果還是有不明白,可以參考這張活動圖應該就有辦法理解了
https://ithelp.ithome.com.tw/upload/images/20171222/20085669GYGwKrZ4aT.png


以上,是今天的部分,明天讓我們實際試著建立一個簡單的待測類別,並且編寫斷言來完成一組測試案例吧~


上一篇
第一天 JUnit入門
下一篇
第三天 AssertJ入門與用3A原則寫測試案例
系列文
重修JAVA三十天4
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言